package controller;

import domain.Lancamento;
import java.sql.SQLException;
import repository.ContaDAO;

public class ContaController {
    
    public ContaDAO dao;
    
    public void buscarConta() throws SQLException{
        String sql = "select idconta, quantidadeParcelas \n" +
                        "from conta";
        
        dao = new ContaDAO();
        dao.read(sql);
    }
    
    public void adicionarConta(domain.Conta c) throws SQLException{
        String sql = "insert into conta values((select max(idconta) from conta) + 1, "+c.getQuantidadeParcelas()+",'"+c.getDescricao()+"', null);";
        dao = new ContaDAO();
        dao.save(sql);
    }
    
    public void lancamento(Lancamento l) throws SQLException{
        String sql = "";
        String dataVenc = "";
        String dataPag = "";
        
        dataVenc += l.getDataVencimento().getYear() + 1900 + "-";
        dataVenc += l.getDataVencimento().getMonth() + 1 + "-";
        dataVenc += l.getDataVencimento().getDate();
        
        dataPag += l.getDataPagamento().getYear() + 1900 + "-";
        dataPag += l.getDataPagamento().getMonth() + 1 + "-";
        dataPag += l.getDataPagamento().getDate();
        
        if(l.getTipo().equals("entrada")){
            sql = "insert into entrada values((select max(identrada) from entrada) + 1, '"
                    + l.getDescricao() + "'," +
                    l.getValorTotal()+ ",'" +
                    dataVenc + "','" +
                    l.getTipoPag() + "'," +
                    l.getJuros() + "," +
                    l.getValor() + "," + 
                    l.getDesconto() + ",'" +
                    dataPag +
                    "')";
            System.out.println(sql);
            dao = new ContaDAO();
            dao.save(sql);
        }
        else{
            for (int i = 0; i < l.getQuantidadeParcelas(); i++) {
                System.out.println(i);
                sql = "insert into saida values((select max(idsaida) from saida) + 1, '" +
                    dataVenc+ "'," +
                    i+1 + ",-" +
                    l.getValor()+ ",-" +
                    l.getValorTotal() + ",-" +
                    l.getJuros() + ",'" + 
                    l.getTipoPag() + "'," +
                    l.getIdConta() + ",'" +
                    dataPag +
                    "')";
                dao = new ContaDAO();
                dao.save(sql);
            }
            
        }
        
        
    }
    
    public void abrirConta(String id) throws SQLException{
        String sql = "insert into conta_cliente values (default,'"+ id +"');";
        dao = new ContaDAO();
        dao.save(sql);
    }
}
